
package com.gome.gop.common;

import java.util.ArrayList;
import java.util.List;

import org.apache.commons.lang.StringUtils;

/**
 *
 * @Title:
 * @Description:数据字典中的code类型
 * @Author:12944
 * @Since:2018年3月13日 下午2:51:51
 * @Copyright:Copyright (c) 2018 - 2100
 * @Company:gome
 * @Version:1.1.0
 */
public enum CodeTypeEnum {
    // md_dc相关字典的code类型 start
    DC_IS_3C("md26_dczl")// 是否3c
    , DC_LEVEL("MD26_jb")// DC种类，一级， 二级
    , DC_WAREHOUSE_TYPE("md26_ckzl") // 仓库种类(普通仓 小件仓 大件仓)
    , DC_TYPE("md26_lx")// 类型(仓库, DC)
    , DC_PROPERTY("md26_xz")// 性质(真实, 虚拟)
    , DC_BELONG_SYSTEM("md_belong_system")// 所属系统（DRG LMIS）
    , DC_CITY_CLASS("md52_ct")// 城市类型（一类城市 二类城市 三类城市）
    , COMMON_APPLY_FLAG("common_apply_flag")// 城市类型（一类城市 二类城市 三类城市）
    , ORDER_DATA_STATUS("order_data_status")// order_data_status 数据状态(1 正常 , 2
                                            // 异常, 3 作废)
    , ORDER_STATUS("oms05_ddzt")// oms05_ddzt ，订单状态
    , RESOURCE_PLATFORM("resource_platform")// 店铺平台来源
    , MALL_BUSINESS_TYPE("mall_business_type")// 店铺业务类型
    , MALL_STATUS("mall_status")// 店铺状态
    , MALL_PICKUP_METTER("mall_pickup_metter")// 店铺，取货事项
    , MALL_DELIVERY_METTER("mall_delivery_metter")// 店铺，送货事项
    , ORDER_EXCEPTION("OE")// 订单异常类型
    /**
     * 单据类型,订单类型
     */
    , BILL_TYPE("wms01_djlx")
    /**
     * 单据类型,运输类型
     */
    , BILL_TYPE_TRANSPORT("oms05_yslx")
    /**
     * 地址解析结果状态
     */
    , ADDRESS_PARSE_STATUS("address_parse_status")
    /**
     * 预约入库单状态
     */
    , ASN_EFFECT_STATE("asn_effect_state")
    //安装单数据状态
    , INSTALL_DATA_STATUS("IDS")
    //安装单状态
    , INSTALL_STATUS("IS")
    //安装单异常类型
    , INSTALL_EXCEPTION("IET")
    ,BILL_EX_TYPE("wms04_djlx")//出库单据类型
    ,ORDER_EX_STATUS("order_ex_status")//出库状态

    // 顺丰 start

    // 顺丰数据状态
    , SF_DATA_STATUS("SFDS")
    //顺丰订单类型
    , SF_ORDER_STATUS("SFOS")
    //顺丰子单类型（1：母单号，2：子单号）
    , SF_SUB_ORDER_TYPE("SFST")
    //顺丰重量计费状态
    ,SF_WEIGHT_JFZT("sfWeight_jfzt")

    // 顺丰 end

    //安装单 start
    //安装单来源
    , ORIGIN_TYPE("OS")
    //订单优先级
    , PRIORITY("ddyxj")
    //订单类型
    , ORDER_TYPE("oms05_ddlx")
    //出库类型
    , OUT_TYPE("oms05_cklx")
    , ENTRY_TYPE("oms05_rklx")
    //安装方式
    , INSTALL_TYPE("oms19_azfs")
    //安装单任务状
    , INSTALL_TASK_STATUS("tms48_azdzt")
    , BASE_UNIT("sku_baseUnit")

    //安装单 end
    //顺丰任务类型
    , SF_DISTRIBUTOR("SFTT")
    //转寄 end
    , IS_OR_NOT("gysf")
    //图片运单状态(成都定的)
    , PICTURE_WAYBILL_STATE("pictureWaybillState")
    //搬家车型
    , MOVING_VEHICLE("MOVING_VEHICLE")
    //搬家车型计费逻辑
    ,MOVE_CAR_BILLING_LOGIC("move_car_billing_logic")
    //仓库类型
    ,WAREHOUSE_TYPE("WAREHOUSE_TYPE")
    //计费类型
    , FEE_TYPE("FEE_TYPE")
    //快递产品(服务类型)
    , EXPRESS_SERVICE_TYPE("gop_kdcp")
    //重泡货
    , HEAVY_LIGHT_GOODS("gop_zph")
    //件型
    , PIECES_TYPE("bms27_jx")



    ;

    public static List<String> getNameList() {
        CodeTypeEnum[] documentTypes = CodeTypeEnum.values();
        List<String> list = new ArrayList<String>();
        for (CodeTypeEnum documentType : documentTypes) {
            list.add(documentType.toString().toUpperCase());
        }
        return list;
    }

    public static List<String> getValueList() {
        CodeTypeEnum[] documentTypes = CodeTypeEnum.values();
        List<String> list = new ArrayList<String>();
        for (CodeTypeEnum documentType : documentTypes) {
            list.add(documentType.getValue().toString().toUpperCase());
        }
        return list;
    }

    private String value;

    private CodeTypeEnum(String value) {
        this.value = value;
    }

    public String getValue() {
        return value;
    }

    public void setValue(String value) {
        this.value = value;
    }

    public static CodeTypeEnum getEnumByvalue(String value) {
        for (CodeTypeEnum userAccountEnum : CodeTypeEnum.values()) {
            if (StringUtils.equals(value, userAccountEnum.getValue())) {
                return userAccountEnum;
            }
        }
        return null;
    }

    public static void main(String[] args) {
        System.out.println(CodeTypeEnum.COMMON_APPLY_FLAG.getValue());
    }
}
